package com.tbynet.jwp.repository.spi;

import com.tbynet.jwp.framework.core._JwpService;
import com.tbynet.jwp.model.Posts;

import java.util.Date;
import java.util.List;

/**
 * 文章定时发布服务
 * @ClassName: PostScheduleService
 * @Description: 负责文章定时发布的功能，支持定时发布、定时下线等功能
 * @Author: 佰亿互联
 * @Date: 2025年11月4日
 *
 * @Copyright: 2025 www.tbynet.com Inc. All rights reserved.
 * 注意: 本内容仅限于内部传阅，禁止外泄以及用于其他的商业目
 */
public interface PostScheduleService extends _JwpService<Posts> {
    /**
     * 定时发布文章
     */
    boolean schedulePublish(Object postId, Date publishTime);

    /**
     * 取消定时发布
     */
    boolean cancelSchedule(Object postId);

    /**
     * 获取待发布的定时文章
     */
    List<Posts> getScheduledPosts();

    /**
     * 执行定时发布任务
     */
    void executeScheduledPublish();

    /**
     * 检查文章是否在定时发布状态
     */
    boolean isScheduled(Object postId);

    /**
     * 获取文章的定时发布时间
     */
    Date getScheduledTime(Object postId);

    /**
     * 批量设置定时发布
     */
    boolean batchSchedule(List<Object> postIds, Date publishTime);
}
